// pages/sell/sell.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        more1: false,
        more3: false,
        dialogShow: false,
        isbn: '',
        err: ""
    },

    change1() {
        this.setData({ more1: !this.data.more1 })
    },
    change3() {
        this.setData({ more3: !this.data.more3 })
    },
    scan() {
        wx.scanCode({
            scanType: ['barCode'],
            success: (res) => {
                console.log(res);
                const isbn = res.result
                console.log(isbn);
                if (this.validateISBNWithCheck(isbn)) {

                } else {
                    console.log(isbn + "不合法");
                }
            },
            fail: (err) => {
                console.log(err);
            }
        })
    },

    dialogShow() {
        this.setData({ dialogShow: !this.data.dialogShow })
    },

    validateISBNWithCheck(isbn) {
        // 格式校验
        if (!/^(?=(?:\d{13}|\d{9}[\dX])$)(97[89]\d{10}|\d{9}[\dX])$/i.test(isbn)) {
            return false;
        }
        // 校验码验证
        const chars = isbn.toUpperCase().split("");
        if (chars.length === 10) {
            // ISBN-10 校验码计算
            const sum = chars.reduce((acc, char, i) =>
                acc + (char === 'X' ? 10 : parseInt(char)) * (10 - i), 0);
            return sum % 11 === 0;
        } else {
            // ISBN-13 校验码计算
            const sum = chars.reduce((acc, num, i) =>
                acc + parseInt(num) * (i % 2 === 0 ? 1 : 3), 0);
            return sum % 10 === 0;
        }
    },

    check() {
        const isbn = this.data.isbn
        if (this.validateISBNWithCheck(isbn)) {
            console.log(isbn + "合法")
        } else {
            console.log(isbn + "不合法")
            this.setData({err: "格式错误，ISBN 最后一位可以是字母 X，请重新输入。"})
        }
    },
    bindinput() {
        this.setData({err: ""})
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})